package topday1_9.mxdx9_1;

/**
 * @Auther:小陈的Java
 * 静态成员内部类
 * 1. 静态成员内部类被static修饰，同时可以被 访问权限修饰符修饰(private 默认 public protected)、也可以被final修饰，也可以被abstract修饰。
 * 2. 内部类可以定义属性、方法、以及构造方法
 * 3. 静态成员内部类  可以定义静态属性和静态方法
 * 4. 内部类支持继承
 * 5. 静态内部类不可以访问外部非静态属性、非静态方法。
 */
/**
 *  静态成员内部类
 */
public class OutsideClass1 {
    private int j = 1;

    public static class InnerClass{
        private int id;
        public void method(){
            System.out.println("普通方法");
        }
        public InnerClass(){
            System.out.println("构造方法");
        }

        private static int i = 1;
        public static void method2(){
            System.out.println("静态方法");
            //静态内部类不可以访问外部非静态属性、非静态方法。 报错
//            System.out.println(OutsideClass.this.j);
        }

    }
    //内部类支持继承
    class A extends InnerClass{

    }


    public static void main(String[] args) {
        OutsideClass1.InnerClass innerClass = new OutsideClass1.InnerClass();
        innerClass.method();
        OutsideClass1.InnerClass.method2();
    }
}
